
package modele;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import modele.exceptions.UtilisateurInexistantException;

/**
 *
 * @author Danicela
 */
public class Utilisateur
{

    private int id;
    private String login;
    private String mdp;
    private int type;

    public Utilisateur(int id, String login, String mdp, int type) {
        this.id = id;
        this.login = login;
        this.mdp = mdp;
        this.type = type;
    }

    public int getId() {
        return id;
    }

    public String getLogin() {
        return login;
    }

    public int getType() {
        return type;
    }

    //Accès BD

    public static Utilisateur getUtilisateur(int idUtilisateur) throws UtilisateurInexistantException, SQLException
    {
        Utilisateur resultat = null;

        String requete = "Select login, mdp, type from utilisateur where id_user = ?;";
        Connection c = Database.getConnection();
        PreparedStatement ps = c.prepareStatement(requete);
        ps.setInt(1, idUtilisateur);
        ResultSet rs = ps.executeQuery();

        if(rs.next())
        {
            //L'utilisateur existe
            String login = rs.getString(1);
            String mdp = rs.getString(2);
            int type = (Integer) rs.getObject(3);
            resultat = new Utilisateur(idUtilisateur, login, mdp, type);
        }
        else
        {
            //L'utilisateur n'existe pas
            throw new UtilisateurInexistantException();
        }

        c.close();

        return resultat;

    }


    public static Utilisateur getUtilisateur(String login, String mdp) throws UtilisateurInexistantException, SQLException
    {
        Utilisateur resultat = null;

        String requete = "Select id_user, type from utilisateur where login = ? and mdp = ?;";
        Connection c = Database.getConnection();
        PreparedStatement ps = c.prepareStatement(requete);
        ps.setString(1, login);
        ps.setString(2, mdp);
        ResultSet rs = ps.executeQuery();

        if (rs.next())
        {
            //L'utilisateur existe
            int idUser = (Integer) rs.getObject(1);
            int type = (Integer) rs.getObject(2);
            resultat = new Utilisateur(idUser, login, mdp, type);
        }
        else
        {
            //L'utilisateur n'existe pas
            throw new UtilisateurInexistantException();
        }

        c.close();

        return resultat;
    }

}
